#ifndef __LIB_AGORA_ADMIN_HOSTRIGHT_H__
#define __LIB_AGORA_ADMIN_HOSTRIGHT_H__

#include <vector>
#include "AdminIHostRight.h"

namespace AgoraAdmin
{

	class	HostRight : public IHostRight
	{
	public:
		HostRight(void);
		HostRight(unsigned int id, const std::vector<bool>& right);
		~HostRight();
		const unsigned int	GetId() const;
		void				SetHostRight(const bool canChangeLogin, const bool canChangePassword, const bool canChangeChannel, const bool canCreateChannel, const bool canDeleteChannel, const bool canMoveChannel, const bool canKickUser, const bool canBanUser, const bool canEditUser);
		const bool			GetCanChangeLogin(void) const;
		void				SetCanChangeLogin(const bool value);
		const bool			GetCanChangePassword(void) const;
		void				SetCanChangePassword(const bool value);
		//can modif host name, codec, bpassante, max user, reboot, etcetc
		const bool			GetCanChangeChannel(void) const;
		void				SetCanChangeChannel(const bool value);
		const bool			GetCanCreateChannel(void) const;
		void				SetCanCreateChannel(const bool value);
		const bool			GetCanDeleteChannel(void) const;
		void				SetCanDeleteChannel(const bool value);
		const bool			GetCanMoveChannel(void) const;
		void				SetCanMoveChannel(const bool value);
		const bool			GetCanKickUser(void) const;
		void				SetCanKickUser(const bool value);
		const bool			GetCanBanUser(void) const;
		void				SetCanBanUser(const bool value);
		const bool			GetCanEditUser(void) const;
		void				SetCanEditUser(const bool value);

	private:
		unsigned int		_id;
		std::vector<bool>	_right;
	};

}

#endif